package com.jiantong.work.service;

import com.jiantong.work.dto.AnimalMarkDto;
import com.jiantong.work.model.AnimalMark;
import io.terminus.common.model.Paging;
import io.terminus.common.model.Response;

import java.util.List;
import java.util.Map;

/**
 * Created by mz on 6/7/17.
 *
 */
public interface AnimalMarkReadService {

    /**
     * 根据id查询
     * @param id 主键id
     * @return AnimalMark
     */
    Response<AnimalMark> findById(Long id);


    /**
     * 分页查询
     * @param pageNo 页码
     * @param pageSize 多少条
     * @param map 参数
     * @return Paging<AnimalMark>
     */
    Response<Paging<AnimalMark>> pagingAnimalMak(Integer pageNo , Integer pageSize , Map<String , Object> map);

    /**
     * 分页查询 用于畜禽出场时选择耳标list
     * @param pageNo 页码
     * @param pageSize 多少条
     * @param map 参数
     * @return Paging<AnimalMark>
     */
    Response<Paging<AnimalMark>> pagingSelectAnimalMak(Integer pageNo , Integer pageSize , Map<String , Object> map);

    /**
     * 分页查询所有散户中的耳标号信息(AnimalMarkDto)
     * @param pageNo
     * @param pageSize
     * @return
     */
    Response<Paging<AnimalMarkDto>> pagingAnimalMakByBreedFactoryName(Integer pageNo , Integer pageSize,Map<String , Object> map);

    /**
     * 根据残缺耳标号模糊查询出一个耳标号list
     * @param map
     * @return
     */
    Response<Paging<AnimalMark>> findByMark(Integer pageNo, Integer pageSize, Map<String , Object> map);


    /**
     * 默认查询排列靠前的十个状态为入库的耳标
     * @param map
     * @return
     */
    Response<List<AnimalMark>> findByMarkIsNull(Map<String , Object> map);

    /**
     * 根据耳标号查询耳标号的具体信息
     * @param markNumber 耳标号
     * @param markType 类型
     * @return AnimalMark
     */
    Response<AnimalMark> findByMarkNumber(String markNumber,Integer markType);

    /**
     * 根据耳标号查询耳标号的具体信息（目前产地检疫出库的时候）
     * @param markNumber 耳标号(全)
     * @return AnimalMark
     */
    Response<AnimalMark> findByMarkNumber(String markNumber);

}
